// let file = function () {
//   this.fs = mpvue.getFileSystemManager()
//   this.dir = mpvue.env.USER_DATA_PATH + '/' + mpvue.getAccountInfoSync().miniProgram.appId + '/louie'
// }
//
// const File = new file()
//
// File.prototype.exists = function (path) {
//   console.log(this.fs)
//   // return this.fs.accessSync(path)
// }

class File {
  constructor () {
    this.fs = mpvue.getFileSystemManager()
    this.dir = mpvue.env.USER_DATA_PATH + '/' + mpvue.getAccountInfoSync().miniProgram.appId + '/' + 'kuyuan' + '/'
    this.init()
  }

  /**
   * 初始化创建系统目录
   */
  init () {
    try {
      this.fs.accessSync(this.dir)
    } catch (e) {
      this.fs.mkdirSync(this.dir, true)
    }
  }

  /**
   * 获取系统目录
   */
  getDir () {
    return this.dir
  }
  /**
   * 指定目录时存在
   */
  exists (dir) {
    try {
      this.fs.accessSync(this.dir + dir)
      return true
    } catch (e) {
      return false
    }
  }

  /**
   * 创建目录
   * @param path 路径
   * @param recursion 是否递归创建
   * @returns {*}
   */
  mkdir (path, recursion = false) {
    return this.fs.mkdirSync(this.dir + path, recursion)
  }

  /**
   * 将指定内容写入文件
   * @param dir 文件路径
   * @param content 写入的内容
   * @param type 编码
   * @param name 文件名字
   * @param suffix 后缀
   */
  write (dir, content, type = 'base64', name, suffix = 'jpg') {
    if (name === undefined) {
      name = new Date().getTime() + '.' + suffix
    }
    if (!this.exists(dir)) {
      this.mkdir(dir)
    }
    let path = this.dir + dir + '/' + name
    try {
      this.fs.writeFileSync(path, content, type)
      return path
    } catch (e) {
      console.log(e)
      return false
    }
  }

  /**
   * 展位
   */
  temp () {
    console.log('yes')
  }
}

export default new File()
